<?php

class VisiteurController extends Zend_Controller_Action {

    public function init() {
        if (!Zend_Auth::getInstance()->hasIdentity()) {
            $this->_redirect('authentification/login');
        }
    }

    public function indexAction() {

    }
    
    public function gererAction() {
        $lesVisiteurs = new Application_Model_DbTable_Visiteur();
//        $this->view->lesVisiteurs = $lesVisiteurs->fetchAll();
//        $lesVisiteurs = new Application_Model_DbTable_Visiteur();
        $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbTableSelect($lesVisiteurs->select()));
        $paginator->setItemCountPerPage(5);
        $currentPage = isset($_GET['page']) ? (int) htmlentities($_GET['page']) : 1;
        $paginator->setCurrentPageNumber($currentPage);
        $this->view->setEscape('htmlentities'); //nb tester l'affichage des accents 
        $this->view->setEncoding('ISO-8859-1');
        
        $this->view->paginator = $paginator;
    }    
    
        public function listerAction() {
        $lesVisiteurs = new Application_Model_DbTable_Visiteur();
//        $this->view->lesVisiteurs = $lesVisiteurs->fetchAll();
//        $lesVisiteurs = new Application_Model_DbTable_Visiteur();
        $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbTableSelect($lesVisiteurs->select()));
        $paginator->setItemCountPerPage(5);
        $currentPage = isset($_GET['page']) ? (int) htmlentities($_GET['page']) : 1;
        $paginator->setCurrentPageNumber($currentPage);
        $this->view->setEscape('htmlentities'); //nb tester l'affichage des accents 
        $this->view->setEncoding('ISO-8859-1');
        
        $this->view->paginator = $paginator;
    }   

    public function ajouterAction() {
        $form = new Application_Form_Visiteur();
        $form->envoyer->setLabel('Ajouter');
        $this->view->form = $form;
        if ($this->getRequest()->getPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $id = $form->getValue('id');
                $nom = $form->getValue('nom');
                $prenom = $form->getValue('prenom');
                $lesVisiteurs = new Application_Model_DbTable_Visiteur();
                $lesVisiteurs->ajouterVisiteur($id, $nom, $prenom);
                $this->_helper->redirector('index');
            } else {
                $form->populate($formData);
            }
        }
    }

    public function modifierAction() {
        $form = new Application_Form_Visiteur();
        $form->envoyer->setLabel('Sauvegarder');
        $this->view->form = $form;
        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $id = $form->getValue('id');
                $nom = $form->getValue('nom');
                $prenom = $form->getValue('prenom');
                $lesVisiteurs = new Application_Model_DbTable_Visiteur();
                $lesVisiteurs->modifierVisiteur($id, $nom, $prenom);
                $this->_helper->redirector('index');
            } else {
                $form->populate($formData);
            }
        } else {
            $id = $this->_getParam('id', 0); // attention, valeur 0 invalide
            $lesVisiteurs = new Application_Model_DbTable_Visiteur();
            $form->populate($lesVisiteurs->obtenirVisiteur($id));
        }
    }

    public function supprimerAction() {
        if ($this->getRequest()->isPost()) {
            $supprimer = $this->getRequest()->getPost('supprimer');
            if ($supprimer == 'Oui') {
                $id = $this->getRequest()->getPost('id');
                $lesVisiteurs = new Application_Model_DbTable_Visiteur();
                $lesVisiteurs->supprimerVisiteur($id);
            }

            $this->_redirect('/visiteur');
        } else {
            $id = $this->getParam('id', 0); // ici, le param defaut idvis=0 invalide
            $lesVisiteurs = new Application_Model_DbTable_Visiteur();
            $this->view->visiteur = $lesVisiteurs->obtenirVisiteur($id); // affichage
        }
    }

}

